Skip to content

ci(flow): overlap guard gates regressions instead of failing outright - #302

Merged
ivanmkc merged 1 commit into
masterfrom
ci/overlap-baseline
Aug 12, 2026
Merged

ci(flow): overlap guard gates regressions instead of failing outright#302
ivanmkc merged 1 commit into
masterfrom
ci/overlap-baseline

Conversation

@ivanmkc

@ivanmkc ivanmkc commented Aug 12, 2026

Copy link
Copy Markdown
Owner

ci(flow): make the overlap guard gate regressions instead of failing outright

The guard has been red on master since the SGCR migration — 24/31 boards clean —
so it gated nothing. #298, #299 and #300 all merged through it, and #300 shipped
titled "edge-over-node eliminated" while seven boards still had edge-over-node.
A check that is always red is indistinguishable from a check that is always
green, except that it also hides the next real regression.

Record the known-bad boards in e2e/overlap-baseline.json and fail only on boards
outside it. Everything not listed must still render with zero overlaps, so a
clean board breaking is a hard failure again.

Deliberately board-level rather than violation-level: the exact node ids differ
between macOS and Linux CI (text metrics move the layout — ex_swimlane fails on
CI and passes locally), so pinning ids would fail constantly off-CI. To keep
that coarseness from hiding drift, violations are now printed in FULL rather
than truncated to three, so a known-bad board getting worse is visible in review
even though it doesn't flip the exit code.

Flakiness is never baselined: an entry records a bad-but-stable layout, and a
board whose geometry moves between runs still fails. The guard also reports when
a listed board renders clean, so the ledger only ever shrinks.

…outright

The guard has been red on master since the SGCR migration — 24/31 boards clean —
so it gated nothing. #298, #299 and #300 all merged through it, and #300 shipped
titled "edge-over-node eliminated" while seven boards still had edge-over-node.
A check that is always red is indistinguishable from a check that is always
green, except that it also hides the next real regression.

Record the known-bad boards in e2e/overlap-baseline.json and fail only on boards
outside it. Everything not listed must still render with zero overlaps, so a
clean board breaking is a hard failure again.

Deliberately board-level rather than violation-level: the exact node ids differ
between macOS and Linux CI (text metrics move the layout — ex_swimlane fails on
CI and passes locally), so pinning ids would fail constantly off-CI. To keep
that coarseness from hiding drift, violations are now printed in FULL rather
than truncated to three, so a known-bad board getting worse is visible in review
even though it doesn't flip the exit code.

Flakiness is never baselined: an entry records a bad-but-stable layout, and a
board whose geometry moves between runs still fails. The guard also reports when
a listed board renders clean, so the ledger only ever shrinks.
@ivanmkc
ivanmkc merged commit 33ad1a2 into master Aug 12, 2026
5 checks passed
@ivanmkc
ivanmkc deleted the ci/overlap-baseline branch August 12, 2026 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants